<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>对象继承</title>
    </head>
    <body>
        <script type="text/javascript">
            //父类  类内部属性和方法的位置, 是没有限制的
            //潜规则: 属性位置靠上, 方法的位置靠下
            class Computer{
                brand;
                price;

                //初始化
                constructor(brand, price){
                    this.brand = brand;
                    this.price = price;
                }

                //方法
                program(){
                    console.log('编程...')
                }
            }

            // extends 继承
            class NoteBook extends Computer{
                screen;
                storage;
                //声明子类的构造方法
                constructor(brand, price, screen, storage){
                    //调用父类的构造方法  super 
                    //如果子类存在构造方法, 则 super 函数必须要调用
                    //super 只能在 constructor 中使用
                    super(brand, price);
                    this.screen = screen;
                    this.storage = storage;
                }

                //看电视
                watchTv(){
                    console.log('看电视...')
                }

                //泡面
                paomian(){
                    console.log('泡面....')
                }

            }

            //实例化
            let macbook = new NoteBook('apple', 12000, '13.3inch', '256G');

            // console.log(macbook);
            macbook.program();

        </script>

    </body>
</html>
